import UIKit

//
@available(iOS 9.0, *)
extension QKC where AA :UIBarButtonItemGroup {
	/// The bar button items associated with this group. Changing these items will affect the bar displaying these items without needing to re-set the groups that are in that bar. Any UIBarButtonItems that are already in group will be removed from that group.
    open func barButtonItems_qk_s(_ barButtonItems:  [UIBarButtonItem]) -> QKC<AA,YY,ZZ, [UIBarButtonItem]>{
		return link(next: barButtonItems).then_QK { $0.value.barButtonItems = barButtonItems }
	}
    open func barButtonItems_qk_g() -> QKC<AA,YY,ZZ, [UIBarButtonItem]>{
		 self +^ self.value.barButtonItems
	}

	/// If the representativeItem has an action, then that action will be invoked, otherwise the bar will present a standard UI to allow selection of the barButtonItems in the representedItem's group.
    open func representativeItem_qk_s(_ representativeItem:  UIBarButtonItem?) -> QKC<AA,YY,ZZ, UIBarButtonItem?>{
		return link(next: representativeItem).then_QK { $0.value.representativeItem = representativeItem }
	}
    open func representativeItem_qk_g() -> QKC<AA,YY,ZZ, UIBarButtonItem?>{
		 self +^ self.value.representativeItem
	}

	/// Returns YES if the representativeItem of this group is currently being displayed, rather than its barButtonItems.
    open func isDisplayingRepresentativeItem_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isDisplayingRepresentativeItem
	}

}

extension QKC where AA :UIBarButtonItem {
	/// The group that the UIBarButtonItem is currently associated with, either as a member of the barButtonItems array or as that group's representativeItem.
    @available(iOS 9.0, *)
     open func buttonGroup_qk_g() -> QKC<AA,YY,ZZ, UIBarButtonItemGroup? >{
		 self +^ self.value.buttonGroup
	}

}

